Hosts in typical datacenters are equipped with two or more network interface controllers (NICs), each of which are connected to separate switches for redundancy. In a load-balancing configuration, such as load-based teaming (LBT), a first NIC for a host is used in active mode to send and receive data, and a second NIC for the host is used in passive mode. In passive mode, the second NIC is configured to only to receive (and not send) data until the first NIC reaches a utilization threshold. Once the utilization threshold is reached, the passive NIC becomes active and the active NIC becomes passive. Because switches update their forwarding tables based on the source addresses (e.g., MAC addresses) of packets they are forwarding, switches connected to NICs operating in passive mode are not aware of the presence of the host on which the passive NIC resides. This configuration, however, can result in flooding and network isolation.
Flooding occurs when a packet sent to a destination host reaches a switch connected to a passive NIC of the destination host. As a result of the switch being unaware of the location of the destination host, the switch will flood the data packet along all communication channels to each host connected to the switch. Flooding the data packet to NICs that are not the intended destination results in a reduction of the throughput of each NIC.
Network isolation occurs when a first host loses an active link between an active NIC and a first switch. The first host will convert the link between a passive NIC and a second switch from passive to active to allow the first host to send and receive packets. However, a second host with an active link to the first switch and a passive link to the second switch may not be able to reach the first host by sending packets to the first switch and, because the second host has a passive link to the second switch, it is not able to send packets to the first host via the second switch.